iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0

Intent分成了Explicit Intent(顯式)Implicit Intent(隱式)兩種
顯式通常會用來啟動特定的Activity
隱式通常用來調用其他的功能
因為顯式比較常會用到所以這裡會著重介紹顯式

顯式通常會用在跳轉頁面上
若是需要使用跳轉頁面的話則要到MainActivity裡去添加程式碼
現在先假設當前所在的頁面是MainActivity
要跳轉到的頁面叫做SecondActivity

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

利用這行可以從當前的Activity跳轉到目標Activity
若需要修改的話
MainActivity.this是當前的Activity
SeecondActivity.class是我們要跳轉到的目標Activity,也就是你想要跳轉到的頁面
只要照著修改就好了

startActivity(intent);

要跳頁面之前必須要先啟用你要跳轉的那個目標Activity
這行就是用來啟用你要跳轉的目標Activity的方法
當這行程式碼執行時,會根據程式碼對應的Activity去啟動
(這裡是SecondActivity)
只要利用這兩行就可以實現最基本的跳轉頁面了

當然如果只有這樣就只能實現最基本的頁面跳轉,所以如果有什麼資料要從MainActivity丟到SecondActivity裡來做顯式的話光是這兩行程式還不夠
假設我現在要傳送的資料變數名叫做bmi_rd且它是一個double的資料
若是要完成傳值的話還需要在MainActivity裡加上這行程式

intent.putExtra("BMI_EXTRA", bmi_rd);

它會將bmi_rd裡的值丟到名為BMI_EXTRA的key值裡
putExtra()是用來將資料附加到Intent中,讓它之後能夠在不同的Activity之間傳遞資料的
BMI_EXTRA是用來識別數據的key值
它類似於一個標籤,在目標Activity裡需要用到它來抓取存在Intent中的資料
bmi_rd是你要傳遞的資料變數名
(在這裡它是一個double型態的值)

接下來的程式碼是如何在SecondActivity接收這數據

Intent intent = getIntent();
double bmi_rd = intent.getDoubleExtra("BMI_EXTRA", 0.0);

getIntent()這行程式碼是用來獲取Intent裡的資料的
getDoubleExtra()是用來從Intent中取得之前使用putExtra()傳遞的 double資料的
(需要注意的是這行是需要依照資料型態去修改和使用的指令,剩下的可以到這裡去了解更多Intent)
BMI_EXTRAkey值,是用來抓取你在之前的Activity裡傳遞的資料的
0.0只是一個預設值,當出現找不到對應的資料的狀況時,就會返回這個預設值,以防出錯

Intent介紹就到這邊,只要會這幾行程式碼就可以實現跳轉頁面了
下篇會開始介紹一些元件的自定義


上一篇
[Day 11] Linear Layout介紹
下一篇
[Day 13] 元件自定義
系列文
深入Android Java程式語言 - 打造我的行動應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言